## [Зарезервированные имена](https://www.opennet.ru/docs/RUS/glibc/glibc-1.html)
Имена всех библиотечных типов, макрокоманд, переменных и функций, которые исходят из ANSI C стандарта, зарезервированы безоговорочно; ваша программа не имеет права переопределять эти имена. Все другие библиотечные имена зарезервированы, если ваша программа явно включает заголовочный файл, который определяет или объявляет их. Для этих ограничений имеются несколько причин:

Другие люди, читая ваш код могут запутаться, если Вы использовали функцию exit, чтобы делать что - нибудь полностью отличное от того, что делает стандартная функция выхода. Предотвращение этой ситуации помогает делать ваши программы более простыми, для понимания и способствует модульности.
Это лишает пользователя возможности случайно переопределить библиотечную функцию, которая вызывается в соответствии c другими библиотечными функциями. Если переопределение позволялось, те другие функции не будут работать.
Это позволяет транслятору делать любые специальные оптимизации опираясь на обращения к этим функциям, без риска, что они могут быть переопределены пользователем. Некоторые библиотечные средства, такие как variadic функции (с переменным числом аргументов, см. раздел A.2 [Variadic функции]) и нелокальные выходы (см. Главу 20 [Нелокальные выходы]), фактически требуют более близкого сотрудничества с частью C транслятора, и для транслятора проще обрабатывать их как встроенные части языка.
В дополнение к именам, описываемым в этом руководстве, зарезервированные имена включают в себя все внешние идентификаторы (глобальные функции и переменные) начинающиеся с подчеркивания ("_") и все идентификаторы независимо от использования, которые начинаются с двух подчеркиваний, или с подчеркивания сопровождаемого заголовочной буквой. Это для того, чтобы библиотека и заголовочные файлы могли определять функции, переменные, и макрокоманды для внутренних целей без риска конфликта с именами в программах пользователя.
Некоторые дополнительные классы имен идентификатора зарезервированы для будущих расширений языка С. Использовании этих имен для ваших собственных целей прямо сейчас создает возможность конфликта с будущими версиями стандарта C, так что Вам следует избегать этих имен.

Имена, начинающиеся с прописной буквы "E" с последующей цифрой, или символом верхнего регистра могут использоваться для дополнительных имен кода ошибки. См. Главу 2 [Сообщения об ошибках].
Имена, которые начинаются с "is' или "к" сопровождаемые символом нижнего регистра, могут использоваться для дополнительного тестирования символа и функций преобразования. См. Главу 4 [Обработка символов].
Имена, которые начинаются с "LC_" с последующим символом верхнего регистра, могут использоваться для дополнительных макрокоманд, определяя атрибуты стандарта. См. Главу 19 [Положения].
Названия всех существующих функций математики (см. Главу 13 [Математика]) с прибавленным "f" или "l" зарезервированы для соответствующих функций, которые применяют к числам с плавающей точкой и параметрам двойной длины, соответственно.
Имена, которые начинаются с "SIG", сопровождаемые символом верхнего регистра, зарезервированы для дополнительных имен сигнала. См. раздел 21.2 [Стандартные сигналы].
Имена, которые начинаются с "SIG_" сопровождаемые символом верхнего регистра, зарезервированы для дополнительных действий сигнала. См. раздел 21.3.1 [Обработка видеосигнала].
Имена, начинающиеся со "str", "mem", или "wcs", сопровождаемые символом нижнего регистра, зарезервированы для дополнительной строки и функций массива. См. Главу 5 [Уилиты для работы со строками и массивами].
Имена, которые заканчиваются на "_t" зарезервированы для дополнительных имен типа.
Кроме того, некоторые индивидуальные заголовочные файлы резервируют имена вне тех, что они фактически определяют. Если ваша программа включает такой специфический заголовочный файл, то у Вас есть повод для беспокойства.
Заголовочный файл "dirent.h" резервирует имена с предстоящим "d_".
Заголовочный файл "fcntl.h" резервирует имена с предстоящими "l_", "F_", "O_", и "S_".
Заголовочный файл "grp.h" резервирует имена с предстоящим "gr_".
Заголовочный файл "limits.h" резервирует имена, с приписанным "_MAX".
Заголовочный файл "pwd.h" резервирует имена с предстоящим "pw_".
Заголовочный файл "signal.h" резервирует имена с предстоящим "sa_" и "SA_".
Заголовочный файл "sys/stat.h" резервирует имена с предстоящим "st_" и "S_".
Заголовочный файл "sys/times.h" резервирует имена с предстоящим "tms_".
Заголовочный файл "termios.h" резервирует имена с предстоящим "c_", "V", "I", "O", и "TC", а также имена с предстоящим "B", сопровождаемым цифрой.